package com.qf.team2.netdisc.job;

import com.qf.team2.netdisc.common.pojo.entity.Link;
import com.qf.team2.netdisc.common.util.ComputationTimeUtils;
import com.qf.team2.netdisc.service.ShareService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

/**
 * 任务类
 * 查询所有非私密链接，超过分享时效则修改成私密
 * now：当前时间（String格式）
 * nowL:当前时间（毫秒格式）
 * createTime：链接创建时间（String格式）
 * createTimeL：链接创建时间（毫秒格式）
 * 2592000000L：30天的时效（毫秒格式）
 * 604800000L：7天的时效（毫秒格式）
 * 86400000L：1天的时效（毫秒格式）
 *
 * @author Simon_Wong
 * @date 2021/05/26 11:35
 */
@Component
public class PrivateJob implements Job {
    /**
     * 声明本类在日志中所添加
     */
    @Autowired
    private ShareService shareService;

    @Override
    public void execute(JobExecutionContext jobExecutionContext) {
        //声明时间转化格式
        List<Link> list = shareService.selectAllLink();
        for (Link link : list) {
            //将当前时间转化为String格式后在转化为毫秒的Long格式
            long result = ComputationTimeUtils.computationTime(link.getCreateTime());
            //判断时间间隔是否符合条件，符合则修改分享权限
            if (link.getDeadline() == 2592000000L && result >= 2592000000L) {
                shareService.updateIsPrivateStatus(link.getId());
            }
            if (link.getDeadline() == 604800000L && result >= 604800000L) {
                shareService.updateIsPrivateStatus(link.getId());
            }
            if (link.getDeadline() == 86400000L && result >= 86400000L) {
                shareService.updateIsPrivateStatus(link.getId());
            }
            //测试5分钟的时效
            if (link.getDeadline() == 300000L && result >= 300000L) {
                shareService.updateIsPrivateStatus(link.getId());
            }
        }
    }
}
